實現打字機功能:字出現之間會有時差,讓一個字接一個字出現。
迴圈{
	 //畫面texe += 清單[第一件][第幾個字]
	ui.text += textList[textIndex][letter];
	letter++;
	時間差;
}
要在unity中製造時間差,除了Timer.deltaTime就是使用Coroutine協程搭配WaitForSeconds()!
可以將Coroutine協程當作一個突發事件,能夠在不影響主程式的情況下執行一段程式碼,等待秒數或完成條件之後才繼續往下執行程式碼。
在unity中要開始一個協程(Starts a Coroutine),使用StartCoroutine()
public Coroutine StartCoroutine(IEnumerator routine);
寫一個IEnumerator 方法(),裡面必須包含yield return,yield return會告訴主線程式繼續執行主線程式。
IEnumerator 方法名稱()
{
	//執行事情(主程式繼續執行前)
	//程式執行到yield return時會繼續在主程式中執行
	yield return new WaitForSeconds(秒數);
	//不一定要回傳等待秒數,也可以是null或數字或其他條件形式。
	//執行事情(主程式繼續執行後)
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ExampleClass : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(coroutineA());
    }
    IEnumerator coroutineA()
    {
        // wait for 1 second
        Debug.Log("coroutineA created");
        yield return new WaitForSeconds(1.0f);
        yield return StartCoroutine(coroutineB());
        Debug.Log("coroutineA running again");
    }
    IEnumerator coroutineB()
    {
        Debug.Log("coroutineB created");
        yield return new WaitForSeconds(2.5f);
        Debug.Log("coroutineB enables coroutineA to run");
    }
}
IEnumerator SetTextUI()
    {
        int letter = 0;
        while(!cancelTyping && letter < textList[textIndex].Length -1)
        {
            uiText.text += textList[textIndex][letter];
            letter++;
            yield return new WaitForSeconds(textSpeed);
        }
        uiText.text = textList[textIndex];
        cancelTyping = false;
        textFinished = true;
        textIndex++;
        
    }